package com.powernode.bank.service.Impl;

import com.powernode.bank.dao.AccountDao;
import com.powernode.bank.pojo.Account;
import jakarta.annotation.Resource;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Isolation;
import org.springframework.transaction.annotation.Transactional;

@Service("i1")
public class IsolationService1 {
    @Resource(name = "accountDao")
    private AccountDao accountDao;

    //1号Service
    //负责select查询
    //当前事务可以读取到别的事务未提交的数据
    @Transactional(isolation = Isolation.READ_UNCOMMITTED,readOnly = true)
    //@Transactional(readOnly = true)只读事务
    /**
     * 将当前事务设置为只读事务，在该事务执行过程中只允许select语句执行，
     * delete insert update均不可执行。
     * 该特性的作用是:启动spring的优化策略。提高select语句执行效率。
     * 如果该事务中确实没有增删改操作，建议设置为只读事务。
     */
    public void getByActno(String actno){
        Account account = accountDao.selectByActno(actno);
        System.out.println("查询到的账户信息:" + account);
    }
}
